"""
1. 在通用测试方法上一行，添加装饰器 @pytest.mark.parametrize() -- import pytest
2. 给 parametrize() 添加参数。 参1：必须是一个字符串。内容，对应 每一组数据的变量。参2：[(),(),()] 格式数据
3. 修改通用测试方法，添加形参，内容为 parametrize() 参1的字符串内容
4. 在 通用测试方法内，使用形参。
"""
import pytest
from config import project_path
from common.readJsonTools import read_json_file


# 待测函数（接口）
def add(x, y):
    return x + y


# 测试数据
# data = [(10, 20, 30), (100, 200, 300), (1000, 2000, 3000), (4, 7, 11)]

# 添加测试类
class TestAdd(object):
    # 准备要打开的json文件路径
    filename = project_path + "/data/addData.json"

    @pytest.mark.parametrize("x, y, expect", read_json_file(filename))
    def test_add(self, x, y, expect):
        """通用测试方法"""
        res = add(x, y)
        assert expect == res
